import axios from './axios-config';

// Ticket数据接口定义
export interface TicketData {
  id?: number
  symbol: string     // 股票代码
  period: string     // 周期 'daily', 'weekly', 'monthly'
  startDate: string  // 开始日期
  endDate: string    // 结束日期
  adjust: string     // 复权方式 '', 'qfq', 'hfq'
  timeout: number | null  // 超时设置
  status?: number    // 状态
  resultId?: number | null  // 结果ID
  createTime?: number[]  // 创建时间
  updateTime?: number[]  // 更新时间
  creator?: string | null  // 创建者
  modifier?: string | null  // 修改者
}

/**
 * 获取所有Ticket数据
 * @returns Promise<TicketData[]> Ticket数据列表
 */
export const getAllTickets = async (): Promise<TicketData[]> => {
  try {
    const response = await axios.get('/stock/ticket/all');
    return response.data;
  } catch (error) {
    console.error('获取Ticket数据失败:', error);
    throw new Error('获取Ticket数据失败，请检查API连接');
  }
};

/**
 * 添加新的Ticket数据
 * @param ticketData Ticket数据
 * @returns 添加结果
 */
export const addTicket = async (ticketData: TicketData): Promise<any> => {
  try {
    const response = await axios.post('/stock/ticket/create', ticketData);
    return response.data;
  } catch (error) {
    console.error('添加Ticket失败:', error);
    throw new Error('添加Ticket失败，请检查提交的数据');
  }
};

/**
 * 更新Ticket数据
 * @param ticketData Ticket数据
 * @returns 更新结果
 */
export const updateTicket = async (ticketData: TicketData): Promise<any> => {
  try {
    if (!ticketData.id) {
      throw new Error('更新Ticket需要提供ID');
    }
    const response = await axios.put(`/stock/ticket/${ticketData.id}/update`, ticketData);
    return response.data;
  } catch (error) {
    console.error('更新Ticket失败:', error);
    throw new Error('更新Ticket失败，请检查提交的数据');
  }
};

/**
 * 删除Ticket数据
 * @param id Ticket ID
 * @returns 删除结果
 */
export const deleteTicket = async (id: number): Promise<any> => {
  try {
    const response = await axios.delete(`/stock/ticket/${id}`);
    return response.data;
  } catch (error) {
    console.error('删除Ticket失败:', error);
    throw new Error('删除Ticket失败，请检查ID是否正确');
  }
};